package net.huashitong.Indicators.web;

import java.text.ParseException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.huashitong.Indicators.databean.CompletionClassificationDatabean;
import net.huashitong.Indicators.databean.IndicatorBreakdownDatabean;
import net.huashitong.Indicators.entity.Analysis;
import net.huashitong.Indicators.entity.TertiaryIndustry;
import net.huashitong.Indicators.filter.IndicatorBreakdownFilter;
import net.huashitong.Indicators.service.AnalysisService;
import net.huashitong.Indicators.service.ExportValueService;
import net.huashitong.Indicators.service.TertiaryIndustryService;
import net.huashitong.Indicators.utils.CodeUtils;
import net.huashitong.Indicators.utils.DateForIndUtils;
import net.huashitong.Indicators.utils.ThiTitleUtils;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.sirdc.modules.core.web.JsonBaseController;
import com.sirdc.modules.core.web.model.Message;
import com.sirdc.modules.utils.ObjectUtils;
/**
 * 出口总值
 * @author lzr
 *
 */
@Controller
@RequestMapping("/app/exportValue")
public class ExportValueAppController extends JsonBaseController {

	@Autowired
	private ExportValueService exportValueService;
	@Autowired
	private TertiaryIndustryService industryService;
	@Autowired
	private AnalysisService analysisService;
	@Override
	protected String getView(String arg0) {
		// TODO Auto-generated method stub
		return null;
	}
	/**
	 * 出口总值二级界面接口
	 * @param filter
	 * @return
	 * @throws ParseException
	 */
	@ResponseBody
	@RequestMapping("/queryCKZZSecView")
	public Message queryCKZZSecView(@RequestBody IndicatorBreakdownFilter filter) throws ParseException{
		String date = DateForIndUtils.getMonth(filter.getDate());
		String cuDate = DateForIndUtils.getCMonth(filter.getDate());
		filter.setDate(date);
		filter.setCurrentMonth(cuDate);
		List<Map<String, Object>> maps = new ArrayList<Map<String,Object>>();
		Map<String, Object> map = new HashMap<String, Object>();
		//出口总值全市各县区排名情况
		IndicatorBreakdownDatabean databean = exportValueService.queryCountyRank(filter);
		if(ObjectUtils.isNotBlank(databean)){
			map.put("type", "1");
			map.put("dataInner", databean);
			map.put("unit", "亿元");
			map.put("monthOrQuarter", CodeUtils.monthOrQuarter_mon);
			map.put("descOne", date.substring(0, 4)+ThiTitleUtils.GXQZZL);
			map.put("descTwo", date.substring(0, 4)+ThiTitleUtils.GXQJDZ);
			map.put("title", "该指标全市排名一览");
			map.put("secTitle", "出口总值全市各县区排名情况");
			maps.add(map);
		}
		
		// 出口总值当季同比增长情况
		List<IndicatorBreakdownDatabean> databeans = exportValueService.queryDevelopmentSituation(filter);
		if(ObjectUtils.isNotBlank(databeans)){
			map = new HashMap<String, Object>();
			map.put("type", "2");
			map.put("data", databeans);
			map.put("descOne", ThiTitleUtils.DYTBZZL);
			map.put("descTwo", ThiTitleUtils.DYLJZZL);
			map.put("monthOrQuarter", CodeUtils.monthOrQuarter_mon);
			map.put("title", "该指标发展情况");
			map.put("secTitle", "出口总值当月同比增长情况");
			maps.add(map);
		}
		
		//出口总值各季度绝对值及同比增长情况
		filter.setDate(DateForIndUtils.getNextYearDate(date.substring(0,4),0));
		filter.setCurrentMonth(cuDate);
		List<Map<String, Object>> list = exportValueService.queryAbsoluteValue(filter);
		/*if(ObjectUtils.isNotBlank(list)){
			map = new HashMap<String, Object>();
			map.put("type", "3");
			map.put("data", list);
			map.put("descOne", date.substring(0, 4)+ThiTitleUtils.GYTBZZL);
			map.put("descTwo", DateForIndUtils.getNextYearDate(date.substring(0, 4),-1)+ThiTitleUtils.GYJDZ);
			map.put("descThi", date.substring(0, 4)+ThiTitleUtils.GYJDZ);
			map.put("unit", "亿元");
			map.put("monthOrQuarter", CodeUtils.monthOrQuarter_mon);
			map.put("title", "该指标各月同比增长情况");
			map.put("secTitle", "出口总值各月"+ThiTitleUtils.JDZ+"及同比增长情况");
			maps.add(map);
		}*/
		
		
		//出口总值累计同比增长情况
		filter.setDate(date);
		filter.setCurrentMonth(cuDate);
		list = exportValueService.queryCumulativeGrowth(filter);
		if(ObjectUtils.isNotBlank(list)){
			map = new HashMap<String, Object>();
			map.put("type", "4");
			map.put("data", list);
			map.put("descOne", DateForIndUtils.getNextYearDate(date.substring(0, 4),-1)+ThiTitleUtils.GYTBZZL);
			map.put("descTwo", date.substring(0, 4)+ThiTitleUtils.GYTBZZL);
			map.put("descThi", DateForIndUtils.getNextYearDate(date.substring(0, 4),-1)+ThiTitleUtils.GYLJJDZ);
			map.put("descFou", date.substring(0, 4)+ThiTitleUtils.GYLJJDZ);
			map.put("unit", "亿元");
			map.put("monthOrQuarter", CodeUtils.monthOrQuarter_mon);
			map.put("title", "该指标累计同比增长情况");
			map.put("secTitle", "出口总值累计"+ThiTitleUtils.JDZ+"及同比增长情况");
			maps.add(map);
		}
		
		map = new HashMap<String, Object>();
		filter.setCurrentMonth(cuDate);
		Analysis analysis = analysisService.getByIndIdAndDate(filter);
		if(ObjectUtils.isNotBlank(analysis)){
		    	map.put("secTitle", analysis.getText());
		 		map.put("type", "0");
		 		map.put("title", "该指标分析");
		 		maps.add(map);
	    }
		 
		
		map = new HashMap<String, Object>();
		filter.setCurrentMonth(cuDate);
	    TertiaryIndustry industry = industryService.queryByfilter(filter);
	    if(ObjectUtils.isNotBlank(industry)){
	    	map.put("leadership", industry.getLeadership());
	 		map.put("unitsNumber", industry.getUnitsNumber());
	    }
	    map.put("monthOrQuarter", CodeUtils.monthOrQuarter_mon);
		map.put("lists", maps);
		map.put("title", "出口总值运行情况");
		return coverMessage("200", "数据获取成功", map);
	}
}
